package com.nextel.project.cliente.mvc;

//import com.nextel.gui.items.ListItemDoble;
import com.nextel.project.Configuracion;
import com.nextel.project.cliente.ControlCliente;
import com.nextel.project.cliente.bean.ClientePorNombreBean;
import com.nextel.project.util.BuscarListener;
import com.nextel.ui.Key;
import com.nextel.ui.OListenerKey;
import com.nextel.ui.OSoftKey;
import com.nextel.ui.OUILook; 
import com.nextel.ui.custom.OScrollListWrap;
import pe.com.nextel.idioma.IdiomaManager;
import pe.com.nextel.main.MVCAction;
import pe.com.nextel.util.ArrayList;
import pe.com.nextel.util.List;

/**
 *
 *
 */
public class MVCClienteResultado extends MVCAction implements BuscarListener,OListenerKey  {// implements ItemStateListener  {
    
    private OSoftKey cmdSigue, cmdAtras;
    private List lstObject;
    private OScrollListWrap lstMenu;
    private boolean flagForm;
    private boolean finalizo;
    boolean primerVez = true;
    List listaDatos = new ArrayList();
    
    protected void destroy() {
        super.destroy();
        if (lstObject != null) {
            lstObject.clear();
            lstObject = null;
        }
    }
    
    protected void createView() {
        
        cmdSigue = new OSoftKey(Configuracion.BOTON_SEGUIR);
        cmdAtras = new OSoftKey(Configuracion.BOTON_ATRAS);
        
        
        formulario.setTitle(" ... ... ", OUILook.PLAIN_SMALL_TITLE);
        
        formulario.addSoftKey(cmdSigue);
        formulario.addSoftKey(cmdAtras);
        
    }
    
    protected void createItems() {
        
        flagForm = true;
        finalizo = false;
        listaDatos.clear();
        primerVez = true;
        
        if (lstObject == null) {
            lstObject = new ArrayList();
        }
        
        lstMenu = new OScrollListWrap(formulario.getWidth(), formulario.getBodyHeight(),
                OUILook.PLAIN_SMALL_SOFTKEY, OUILook.PLAIN_SMALL_TEXT);
        lstMenu.setModeWrap(true);
        lstMenu.listenerKey = this;
        lstMenu.isWithBorder = false;
         if(lstMenu != null){
        formulario.add(lstMenu);
         }
//        System.out.println("clienteresultado.Trhread.count=" + Thread.activeCount());
        
    }
    
    public void performAction(OSoftKey c) {
        if (flagForm) {
            
            if (c == cmdSigue) {
                
                if (lstObject.size() > 0 && lstMenu.getSelectedIndex() >= 0) {
                    finalizo = false;
                    flagForm = false;
                    
                    ClientePorNombreBean clientePorNombre = (ClientePorNombreBean) lstObject.get(lstMenu.getSelectedIndex());
                    destroy();
                    ControlCliente.getInstance().obtenerclientePorNombre(clientePorNombre);
                    
                }
                
            } else if (c == cmdAtras) {
                flagForm = false;
                finalizo = true;
                destroy();
                ControlCliente.getInstance().setCurrent(ControlCliente.getInstance().mvcClienteBusqueda);
                
            }
        }
    }

    
    public void performKey(int indx){
        
        if (flagForm) {
            
            if(indx == Key.Key_OK){
                if (lstObject.size() > 0) {
                    finalizo = false;
                    flagForm = false;
                    ClientePorNombreBean clientePorNombre = (ClientePorNombreBean) lstObject.get(lstMenu.getSelectedIndex());
                    ControlCliente.getInstance().obtenerclientePorNombre(clientePorNombre);
                    destroy();
                    
                }
            }
            
        }
    }
    
    public void agregarElementosVectorDatos(List lista) {
//        System.out.println("lista.size =" + lista.size( ) );
        
        if (!finalizo) { // si no finaliza la busqueda o se interrumpe
            
            ClientePorNombreBean clientePorNombreBean;
            
            for (int i = 0; i < lista.size(); i++) {
                
                clientePorNombreBean = (ClientePorNombreBean) lista.get(i);

                listaDatos.add(clientePorNombreBean.getNombreCliente( ));
                
                lstObject.add(clientePorNombreBean);
                
                
            }
            if (primerVez) {
                lstMenu.populate(listaDatos);
                formulario.repaint();
                primerVez = false;
                
            }
            if(lista != null)
            lista.clear();
            lista = null;
            clientePorNombreBean = null;

        }
    }
    
    public void finalizo() {
        finalizo = false;
        
        String texto = IdiomaManager.getInstance().getMensaje(IdiomaManager.JAVA_CLIENTE);
        
        if (formulario != null && lstObject != null) {
            
            if(lstObject.size()>1)
            {
                texto = IdiomaManager.getInstance().getMensaje(IdiomaManager.JAVA_CLIENTES);
            }
            
            formulario.setTitle(lstObject.size() + " " + texto, OUILook.PLAIN_SMALL_TITLE);//"Clientes"

            lstMenu.recalcular( );
            formulario.repaint();
        }
    }


    
    public boolean esFinalizadaBusqueda() {
        return finalizo;
    }
}
